Interpreter prototypes from formal language definitions
نویسنده
چکیده
Denotational semantics is now used widely for the formal definition of programming languages but there is a lack of appropriate tools to support language development. General purpose language implementation systems are oriented to syntax with poor support for semantics. Specialised denotational semantics based systems correspond closely to the formalism but are rendered inflexible for language experimentation by their monolithic multiple stages Exploratory language development with formal definitions is better served by a unitary notation, encompassing syntax and semantics, which is close to but simpler than denotational semantics. Interactive implementation of the notation then facilitates language investigation through the direct execution of a formal definition as an interpreter for the defined language. This thesis presents Navel, a run-time typed, applicative order, pure functional programming language with integrated context free grammar rules. Navel has been used to develop prototype implementations from substantial formal language definitions, including for Navel itself. The Navel implementation achieves a performance which enables interactive language experimentation and compares well with that of contemporaneous declarative language implementations. Denotational semantics does not address concrete syntax issues and denotational semantics based systems either ignore or have ad-hoc provision for context sensitivity. In Navel, rules are full values. Abstraction over rules enables the concise expression of context sensitivity in a style similar to dynamic syntax.
منابع مشابه
Interpreter prototypes from language definition style specifications by GREG MICHAELSON
Language definition techniques may be applied to the specification of a wide range of problems. Language implementation techniques may then be used to construct interpreter prototypes. The use of an interpreter-interpreter language for the implementation of interpreter prototypes circumvents some of the disadvantages of contemporary programming languages and software tools.
متن کاملExecuting Formal Semantics with the K Tool
This paper describes the K tool, a system for formally defining programming languages. Formal definitions created using the K tool automatically yield an interpreter for the language, as well as program analysis tools such as a state-space explorer. The modularity of K and the design of the tool allow one semantics to be used for several applications.
متن کاملFormalization of Database Systems - and a Formal Definition of IMS (Invited Paper)
ion Techniques, Functional & Logic Programming, me/Post conditions, Datastructure Invariant-s 0. Introductim 1. Specification Etequirements & Objectives 2. Formal Definitions h Their Uses 3. Related P&rk An Annotated Bibliography 4. Conclusion References (2) This Was the first step of our analogy. In our next step = relate programning language processors to database management systems, DBMS. By...
متن کاملThe K Primer ( version 2 . 5 )
This paper serves as a brief introduction to the K tool, a system for formally defining programming languages. It is shown how sequential or concurrent languages can be defined in K simply and modularly. These formal definitions automatically yield an interpreter for the language, as well as program analysis tools such as a state-space explorer.
متن کاملRewriting Logic Semantics: From Language Specifications to Formal Analysis Tools
Formal semantic definitions of concurrent languages, when specified in a well-suited semantic framework and supported by generic and efficient formal tools, can be the basis of powerful software analysis tools. Such tools can be obtained for free from the semantic definitions; in our experience in just the few weeks required to define a language’s semantics even for large languages like Java. B...
متن کامل